package com.sunthy.mall.dao.admin;

import com.sunthy.mall.model.admin.bo.goods.GoodsDeleteSpecBo;
import com.sunthy.mall.model.admin.pojo.goods.Goods;
import com.sunthy.mall.model.admin.pojo.goods.Spec;
import com.sunthy.mall.model.admin.pojo.goods.Type;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface GoodsDao {
    // 在数据库中查询type
    List<Type> allTypes(@Param("type") Type type);

    // 通过typeId查询goodsList
    List<Goods> allGoodsByTypeId(Integer typeId);

    // 添加type
    int addType(@Param("type") Type type);

    // 根据id删除type
    int deleteTypeById(Integer typeId);

    // 添加Goods
    void addGoods(Goods goods);

    // 添加Specs
    void addSpecs(List<Spec> specList);

    // 删除goods通过id
    int deleteGoodsById(Integer id);

    // 通过id查询goods从
    Goods getGoodsById(Integer id);

    List<Spec> SpecsByGoodsId(Integer id);

    // 根据goods修改对应的goods
    void updateGoods(@Param("goods") Goods goods);

    // 根据spec修改对应spec
    void updateSpec(@Param("spec") Spec spec);

    int selSpec(@Param("spec") Spec spec);

    int deleteSpecByGoodsDeleteSpecBo(@Param("goodsDeleteSpecBo") GoodsDeleteSpecBo goodsDeleteSpecBo);

    /**
     * 根据goodsname 搜索goods
     * @param keyword
     * @return
     */
    List<Goods> allGoodsByName(String keyword);

    /**
     * 获取spec通过id
     * @param goodsDetailId
     * @return spec
     */
    Spec selSpecById(Integer goodsDetailId);
}

